<?php

class ModuloXML{
	
	/** @var Nombre completo del modulo */
	var $nombre;
	/** @var Descripcion del modulo */
	var $descripcion;
	/** @var Nombre del autor */
	var $autor;
	/** @var Direccion de correo de contacto del autor */
	var $autorEmail;
	/** @var Fecha de ultima modificacion del modulo */
	var $creado;
	/** @var Derechos de autor */
	var $copyright;
	/** @var Version del modulo */
	var $version;
	
	/** @var Archivos que contiene el modulo */
	var $archivos = array();
	/** @var Archivos javascript requeridos por el modulo */
	var $requeridosJs = array();
	/** @var Archivos css requeridos por el modulo */
	var $requeridosCss = array();
	/** @var Archivo de consultas sql */
	var $archivoSql = '';
	
	var $_error;
	var $_simplexml;
	
	function ModuloXML($pArchivoXml){
		global $objClases;
		require_once($objClases->get('ruta_absoluta') . '/includes/simplexml.class.php');
		
		if(file_exists($pArchivoXml)){
			$sxml = new simplexml;
			$this->_simplexml = $sxml->xml_load_file($pArchivoXml);
			
			if($this->_simplexml != null){
				//Llenamos las variables de esta clase
				$this->nombre 		= $this->_simplexml->nombre;
				$this->descripcion	= $this->_simplexml->descripcion;
				$this->autor 		= $this->_simplexml->autor;
				$this->autorEmail 	= $this->_simplexml->autorEmail;
				$this->creado 		= $this->_simplexml->creado;
				$this->copyright 	= $this->_simplexml->copyright;
				$this->version 		= $this->_simplexml->version;
				
				//Archivos del modulo
				$archs = $this->_simplexml->archivos;
				foreach($archs->archivo as $arch){
					$this->archivos[] = $arch;
				}
				
				//Requeridos
				$requeridos = $this->_simplexml->requeridos;
				$css = $requeridos->css;
				if(!is_null($css))
					//Requeridos css
					if(sizeof($css->archivo) > 1)
						foreach($css->archivo as $archivo)
							$this->requeridosCss[] = $archivo;
					else
						$this->requeridosCss[] = $css->archivo;
						
				//Requeridos js
				$js = $requeridos->js;
				if(!is_null($js)){
					if(sizeof($js->archivo) > 1)
						foreach($js->archivo as $archivo)
							$this->requeridosJs[] = $archivo;
					else
						$this->requeridosJs[] = $js->archivo;
				}
				
				//Consultas SQL
				$this->archivoSql = $this->_simplexml->sql;
			}else
				$this->_error = __('No se pudo leer el archivo XML');
		}else
			$this->_error = __('El archivo XML no existe');
	}
	
	function getInformacion(){
		if($this->_error != '')	return $this->_error;
		return "<table align=\"center\" width=\"50%\" cellspacing=\"2\" cellpadding=\"2\">\n" .
			"\t<tbody>\n".
				"\t\t<tr>\n".
					"\t\t\t<td><strong>Descripci&oacute;n:</strong></td>\n" .
					"\t\t\t<td>$this->descripcion</td>\n" .
				"\t\t</tr>\n" .
				"\t\t<tr>\n".
					"\t\t\t<td><strong>Autor:</strong></td>\n" .
					"\t\t\t<td>$this->autor</td>\n" .
				"\t\t</tr>\n" .
				"\t\t<tr>\n" .
					"\t\t\t<td><strong>Contacto:</strong></td>\n" .
					"\t\t\t<td>$this->autorEmail</td>\n" .
				"\t\t</tr>\n" .
				"\t\t<tr>\n" .
					"\t<td><strong>Versi&oacute;n:</strong></td>\n" .
					"\t<td>$this->version</td>\n" .
				"\t\t</tr>\n" .
				"\t\t<tr>\n" .
					"\t<td><strong>Creado:</strong></td>\n" .
					"\t<td>$this->creado</td>\n" .
				"\t\t</tr>\n" .
				"\t\t<tr>\n" .
					"\t<td><strong>Copyright:</strong></td>\n" .
					"\t<td>$this->copyright</td>\n" .
				"\t\t</tr>\n" .
			"\t</tbody>\n" .
		"</table>";
	}
	
	function getNombre(){
		if($this->_error) return $this->_error;
		return $this->nombre;
	}
	
	function getArchivos(){
		if($this->_error) return $this->_error;
		return $this->archivos;
	}
	
	function getRequeridosCss(){
		if($this->_error) return $this->_error;
		return $this->requeridosCss;
	}
	
	function getRequeridosJs(){
		if($this->_error) return $this->_error;
		return $this->requeridosJs;
	}
	
	function getArchivoSql(){
		if($this->_error) return $this->_error;
		return $this->archivoSql;
	}
}

?>